﻿<%@ Page Title="About Us" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="About.aspx.cs" Inherits="Cognitum.WebPages.About" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>About
    </h2>
    <p>
        CassandraProviders is a complete ASP.NET solution that uses the Cassandra Database data source for a custom Membership, Role, Profile, an Session-State providers.
        Developed in C# on the .NET 4 framework, Cassandra 2.0.8, Datastax CassandraCSharpDriver 2.0.3. Solution based on:  <a href="https://azureproviders.codeplex.com/wikipage?title=Gettings%20started&referringTitle=Documentation" title="AzureProviders">AzureProviders</a><br />
        Solution implements all methods for this providers. Profile includes gender,  birthday and portrait blob address Uri.
    </p>
    Usage:<br />
    <ul>
        <li>Host Cassandra Database.</li>
        <li>Install Visual Studio 2010.</li>
        <li>In Web.config:
         <ul>
             <li>Change the e-mail  from send emails (key="fromEmail").</li>
             <li>Set ApplicationName by your application name.</li>
             <li>Set ConnectionString to connect to your Cassandra.</li>
             <li>Set UserIsOnlineTimeWindow. It is seconds. Using by Membership Provider.</li>
             <li>Set ReplicationFactor. It is Cassandra parameter.</li>
             <li>Set UserIsActiveTimeWindow. It is seconds. Using by Profile Provider.</li>
         </ul>
        </li>
        <li>Initialize the application for the first time by click url: <a href="/Admin/InitApp.aspx">To create  Cassandra tables and Admin account. Click here</a>.</li>
        <li>Sign in with the Admin user (default user name is "admin" and default password is "cassandra2014"). It is defined in Web.config file.</li>
        <li>You should probably change the statickey appsetting in the web.config file before going public since this is the encryption key, or use machine key instead.</li>
        <li>If you have problems with find providers by your application, look at: <a href="http://logcorner.wordpress.com/2013/08/29/how-to-configure-custom-membership-and-role-provider-using-asp-net-mvc4/">Cofigure ASP.NET MVC4</a></li>
    </ul>
    Difference with Microsoft Providers:<br />
    <ul>
        <li>Inactive profiles: time of inactivity is once defined in Web.config file, not by parameter userInactiveSinceDate of queries.</li>
    </ul>
    Problems and things to do:<br />
    <ul>
        <li>Make model to ask for inactive profiles with different time (not defined once in config file).</li>
        <li>Make better finding users by username and emails. (Now all inscriptions are match on server.)</li>
        <li>Reduce sending data from database by asking Cassandra for interesting columns. (Now is sending full row.)</li>
        <li>Refactor TableStorage by using names of tables and columns entities names.</li>
        <li>Maybe once ask for totalRecords for query and next ask for this data with paging.</li>
    </ul>
</asp:Content>